package app;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

/**
 * Clase Propiedad:<p>
 * Clase contenedora de la informacion de una propiedad.
 *
 * @author jaredkurosawa
 * @version 2.0
 */
public class Propiedad {
		
        private int id;
        private int tipo;
        private double dimension;
        private String direccion;
        private double precio;
        private String usuario;
        private boolean validado;
        private String oferta;
       
        public int getId(){
                return id;
        }
       
        public void setId(int id){
                this.id = id;
        }

        public int getTipo() {
                return tipo;
        }
       
        public void setTipo(int tipo) {
                this.tipo = tipo;
        }
       
        public double getDimension ()
        {
                return dimension;
        }
       
        public void setDimension (double dimension)
        {
                this.dimension = dimension;
        }
       
        public String getDireccion() {
                return direccion;
        }
       
        public void setDireccion(String direccion) {
                this.direccion = direccion;
        }
       
        public double getPrecio() {
                return precio;
        }
       
        public void setPrecio(double precio) {
                this.precio = precio;
        }
       
        public String getUsuario(){
                return usuario;
        }

        public void setUsuario(String usuario) {
                this.usuario = usuario;
        }

        public void setValidado(boolean validado){
                this.validado = validado;
        }
        
        public boolean getValidado(){
                return validado;
        }
        
        public String getOferta ()
        {
        	return oferta;
        }
        
        public void setOferta (String oferta) {
        	this.oferta = oferta;
        }
       
        public void ver(){
                System.out.print ("Tipo de propiedad: ");
               
                switch (getTipo())
                {
                case 1:
                        System.out.println ("Solar");
                        break;
                case 2:
                        System.out.println ("Piso");
                        break;
                case 3:
                        System.out.println ("Casa terrera");
                        break;
                case 4:
                        System.out.println ("Comercial");
                }
               
                System.out.println ("Direccion: " + getDireccion ());
                System.out.println ("Dimensiones: " + getDimension ());
                System.out.println ("Precio: " + getPrecio () + "\n");
        }
       
        // Recoge por pantalla los datos de la propiedad
        public void publicar(Usuario u) {
                InputStreamReader isr = null;
                BufferedReader br = null;
                boolean datoValido = false;
                int d = 0;
                try {
                        isr = new InputStreamReader(System.in);
                        br = new BufferedReader(isr);
                        // Usuario
                        usuario = u.getUsuario();
                        // Tipo de Propiedad
                        System.out.println("Inserte el tipo de propiedad:");
                        System.out.println("1 - Solar.");
                        System.out.println("2 - Piso.");
                        System.out.println("3 - Casa Terrera.");
                        System.out.println("4 - Local Comercial.");
                        System.out.print("Opcion: ");
                        while (!datoValido) {
                                try {
                                        d = Integer.parseInt(br.readLine());
                                        while (d < 1 || d > 4) {
                                                System.out.println("Error en el formato: Fuera de rango.");
                                                System.out.print("Opcion: ");
                                                d = Integer.parseInt(br.readLine());
                                        }                                              
                                        tipo = d;
                                        datoValido = true;
                                } catch (NumberFormatException e) {
                                        System.out.println("Error en el formato: No es un numero.");
                                        System.out.print("Opcion: ");  
                                        datoValido = false;
                                }
                        }
                        // Direccion
                        System.out.print("Inserte la direccion: ");
                        direccion = br.readLine();
                        datoValido = false;
                        // Dimension
                        System.out.print("Inserte la dimension (metros cuadrados): ");
                        while (!datoValido) {
                                try {
                                        d = Integer.parseInt(br.readLine());                                            
                                        dimension = d;
                                        while (d <= 0) {
                                                System.out.println("Error en el formato: Numero negativo.");
                                                System.out.print("Inserte la dimension: ");
                                                d = Integer.parseInt(br.readLine());
                                        }
                                        datoValido = true;
                                } catch (NumberFormatException e) {
                                        System.out.println("Error en el formato: No es un numero.");
                                        System.out.print("Inserte la dimension: ");    
                                        datoValido = false;
                                }
                        }
                        datoValido = false;
                        // Precio
                        System.out.print("Inserte el precio: ");
                        double d_;
                        while (!datoValido) {
                                try {
                                        String aux = br.readLine();
                                        d_ = Double.parseDouble(aux);
                                        while (d_ <= 0) {
                                                System.out.println("Error en el formato: Numero negativo.");
                                                System.out.print("Precio: ");
                                                aux = br.readLine();
                                                d_ = Double.parseDouble(aux);
                                        }
                                        precio = d_;
                                        datoValido = true;
                                } catch (NumberFormatException e) {
                                        System.out.println("Error en el formato: No es un numero.");
                                        System.out.print("Precio: ");  
                                        datoValido = false;
                                }
                        }
                        System.out.print("Inserte el codigo de validacion: ");
                        br.readLine();                  
                } catch (IOException e) {
                        e.printStackTrace();
                }
        }
}